// Commands.h

// Vytvaranie prikazov a ich zasielanie severu

#ifndef COMMANDS_H
#define COMMANDS_H

#include "Common/Interfaces/Interface.h"
#include "Common/World/Types.h"

// Interfejs pre vytvaranie a zasielanie prikazov serveru
class CommandsInterface : public Interface
{
public:
	
	// Konstruktor
	CommandsInterface() : Interface("Intefejs prikazov", "v0.02")
	{
	
	}
	virtual ~CommandsInterface()
	{
	
	}

	// METODY

	// Prepina pozorovaci uhol a kvalitu pohladu
	virtual int ChangeView(ViewWidth nWidth) = 0;
	// Vrati stav hry
	virtual int Score() = 0;
	// Nastavi skutocnu stranu
	virtual void SetRealSide(RealSide nRs) = 0;
		
	virtual int Catch(float fDirection) = 0;
	virtual int Dash(float fPower) = 0;
	virtual int Kick(float fPower, float fDirection) = 0;
	virtual int Move(float fX, float fY) = 0;
	virtual int Say(const char* pMsg) = 0;
	virtual int SenseBody() = 0;
	virtual int Tackle(float fPower) = 0;
	virtual int Turn(float fMoment) = 0;
	virtual int TurnNeck(int iAngle) = 0;

	// loptosi - mj
	virtual int AttentionTo(int uniformNumber) = 0;
	virtual int AttentionOff() = 0;

	// Bye() = Disconnect()
	virtual int Disconnect() = 0;
	
	virtual int CLangInit() = 0;	
	virtual int Reconnect(const char* pTeamName, unsigned uUniformNumber) = 0;
	virtual int ServerInit(const char* pTeamName, bool bGoalie = false, const char* pVer = NULL) = 0;	
//	virtual int SendCommand(int, void*) = 0;

};

#endif	// COMMANDS_H
